package com.jie.eduorder.controller;


import com.jie.commonutils.ResultEntity;
import com.jie.eduorder.service.PayLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

/**
 * <p>
 * 支付日志表 前端控制器
 * </p>
 *
 * @author xzj
 * @since 2020-10-17
 */
//@CrossOrigin  // 解决跨域问题
@RestController
@RequestMapping("/eduorder/paylog")
public class PayLogController {

    private final PayLogService payLogService;

    @Autowired
    public PayLogController(PayLogService payLogService) {
        this.payLogService = payLogService;
    }

    /**
     * 生成微信支付二维码接口
     * @param orderNo  订单号
     * @return         返回微信支付二维码信息
     */
    @GetMapping("/createNative/{orderNo}")
    public ResultEntity createNative(
            @PathVariable("orderNo") String orderNo
    ) {
        // 返回信息: 二维码地址, 其它信息
        Map<String, Object> map = payLogService.createNative(orderNo);
        return ResultEntity.ok().data(map);
    }

    /**
     * 查询订单支付状态(查询微信)
     * @param orderNo  订单号
     * @return         返回订单支付状态信息
     */
    @GetMapping("/queryPayStatus/{orderNo}")
    public ResultEntity queryPayStatus(
            @PathVariable("orderNo") String orderNo
    ) {
        Map<String, String> map = payLogService.queryPayStatus(orderNo);
        if (map == null) {
            return ResultEntity.error().message("支付出错!");
        }
        // 通过map获取订单状态
        if (map.get("trade_state").equals("SUCCESS")) {  // 支付成功
            // 添加记录到支付表, 更新订单表订单状态
            payLogService.updateOrderStatus(map);
            return ResultEntity.ok().message("支付成功!");
        }
        // 25000表示目前是支付中的状态
        return ResultEntity.ok().code(25000).message("支付中...");
    }

}

